.code:
  PUSH 60		contract rng {...
  PUSH 40		contract rng {...
  MSTORE			contract rng {...
  PUSH [tag3]		test()
  PUSH 0		uint
  PUSH 3		3
  PUSH 5		5
  PUSH 7		7
  PUSH B		11
  DUP5			uint
tag6: 
  JUMPDEST		for (int i = 0; i < 1000000; ++i) {...
  PUSH F4240		1000000
  DUP2			i
  SLT			i < 1000000
  ISZERO			for (int i = 0; i < 1000000; ++i) {...
  PUSH [tag7]		for (int i = 0; i < 1000000; ++i) {...
  JUMPI			for (int i = 0; i < 1000000; ++i) {...
  PUSH 243F6A8885A308D3		0x243F6A8885A308D3
  SWAP5			0x243F6A8885A308D3 * rand1
  SWAP1			0x243F6A8885A308D3 * rand1
  SWAP5			0x243F6A8885A308D3 * rand1
  MUL			0x243F6A8885A308D3 * rand1
  PUSH 13198A2E03707344		0x13198A2E03707344
  ADD			0x243F6A8885A308D3 * rand1 + 0x13198A2E03707344
  SWAP4			0x243F6A8885A308D3 * rand1 + 0x13198A2E03707344
  PUSH A4093822299F31D0		0xA4093822299F31D0
  SWAP4			0xA4093822299F31D0 * rand2
  SWAP1			0xA4093822299F31D0 * rand2
  SWAP4			0xA4093822299F31D0 * rand2
  MUL			0xA4093822299F31D0 * rand2
  PUSH 82EFA98EC4E6C89		0x082EFA98EC4E6C89
  ADD			0xA4093822299F31D0 * rand2 + 0x082EFA98EC4E6C89
  SWAP3			0xA4093822299F31D0 * rand2 + 0x082EFA98EC4E6C89
  PUSH 452821E638D01377		0x452821E638D01377
  SWAP3			0x452821E638D01377 * rand3
  SWAP1			0x452821E638D01377 * rand3
  SWAP3			0x452821E638D01377 * rand3
  MUL			0x452821E638D01377 * rand3
  PUSH BE5466CF34E90C6C		0xBE5466CF34E90C6C
  ADD			0x452821E638D01377 * rand3 + 0xBE5466CF34E90C6C
  SWAP2			0x452821E638D01377 * rand3 + 0xBE5466CF34E90C6C
  PUSH C0AC29B7C97C50DD		0xC0AC29B7C97C50DD
  DUP4			0xC0AC29B7C97C50DD * rand3
  MUL			0xC0AC29B7C97C50DD * rand3
  PUSH 3F84D5B5B5470917		0x3F84D5B5B5470917
  ADD			0xC0AC29B7C97C50DD * rand3 + 0x3F84D5B5B5470917
  SWAP2			0xC0AC29B7C97C50DD * rand3 + 0x3F84D5B5B5470917
  POP			
  PUSH 1		i < 1000000
  ADD			++i
  PUSH [tag6]		for (int i = 0; i < 1000000; ++i) {...
  JUMP			for (int i = 0; i < 1000000; ++i) {...
tag3: 
  JUMPDEST		test()
  PUSH 0		uint
  SSTORE			rand = test()
  PUSH #[$00000000…00000000]		contract rng {...
  DUP1			contract rng {...
  PUSH [$00000000…00000000]		contract rng {...
  PUSH 0		contract rng {...
  CODECOPY			contract rng {...
  PUSH 0		contract rng {...
  RETURN			contract rng {...
tag7: 
  JUMPDEST		for (int i = 0; i < 1000000; ++i) {...
  POP			
  SWAP2			rand1 ^ rand2
  SWAP1			rand1 ^ rand2
  SWAP3			rand1 ^ rand2
  XOR			rand1 ^ rand2
  SWAP1			rand1 ^ rand2 ^ rand3
  SWAP2			rand1 ^ rand2 ^ rand3
  XOR			rand1 ^ rand2 ^ rand3
  XOR			rand1 ^ rand2 ^ rand3 ^ rand4
  SWAP2			rand1 ^ rand2 ^ rand3 ^ rand4
  SWAP1			test()
  POP			
  JUMP	[out]		function test() returns (uint) {...
.data:
  0: 
  .code:
    PUSH 60		contract rng {...
    PUSH 40		contract rng {...
    MSTORE			contract rng {...
    PUSH E0		
    PUSH 2		
    EXP			
    PUSH 0		contract rng {...
    CALLDATALOAD			contract rng {...
    DIV			contract rng {...
    PUSH F8A8FD6D		contract rng {...
    DUP2			contract rng {...
    EQ			contract rng {...
    PUSH [tag2]		contract rng {...
    JUMPI			contract rng {...
  tag1: 
    JUMPDEST		contract rng {...
    STOP			contract rng {...
  tag2: 
    JUMPDEST		function test() returns (uint) {...
    PUSH [tag3]		function test() returns (uint) {...
    PUSH 0		contract rng {...
    PUSH 3		3
    PUSH 5		5
    PUSH 7		7
    PUSH B		11
    DUP5			contract rng {...
  tag6: 
    JUMPDEST		for (int i = 0; i < 1000000; ++i) {...
    PUSH F4240		1000000
    DUP2			i
    SLT			i < 1000000
    ISZERO			for (int i = 0; i < 1000000; ++i) {...
    PUSH [tag7]		for (int i = 0; i < 1000000; ++i) {...
    JUMPI			for (int i = 0; i < 1000000; ++i) {...
    PUSH 243F6A8885A308D3		0x243F6A8885A308D3
    SWAP5			0x243F6A8885A308D3 * rand1
    SWAP1			0x243F6A8885A308D3 * rand1
    SWAP5			0x243F6A8885A308D3 * rand1
    MUL			0x243F6A8885A308D3 * rand1
    PUSH 13198A2E03707344		0x13198A2E03707344
    ADD			0x243F6A8885A308D3 * rand1 + 0x13198A2E03707344
    SWAP4			0x243F6A8885A308D3 * rand1 + 0x13198A2E03707344
    PUSH A4093822299F31D0		0xA4093822299F31D0
    SWAP4			0xA4093822299F31D0 * rand2
    SWAP1			0xA4093822299F31D0 * rand2
    SWAP4			0xA4093822299F31D0 * rand2
    MUL			0xA4093822299F31D0 * rand2
    PUSH 82EFA98EC4E6C89		0x082EFA98EC4E6C89
    ADD			0xA4093822299F31D0 * rand2 + 0x082EFA98EC4E6C89
    SWAP3			0xA4093822299F31D0 * rand2 + 0x082EFA98EC4E6C89
    PUSH 452821E638D01377		0x452821E638D01377
    SWAP3			0x452821E638D01377 * rand3
    SWAP1			0x452821E638D01377 * rand3
    SWAP3			0x452821E638D01377 * rand3
    MUL			0x452821E638D01377 * rand3
    PUSH BE5466CF34E90C6C		0xBE5466CF34E90C6C
    ADD			0x452821E638D01377 * rand3 + 0xBE5466CF34E90C6C
    SWAP2			0x452821E638D01377 * rand3 + 0xBE5466CF34E90C6C
    PUSH C0AC29B7C97C50DD		0xC0AC29B7C97C50DD
    DUP4			0xC0AC29B7C97C50DD * rand3
    MUL			0xC0AC29B7C97C50DD * rand3
    PUSH 3F84D5B5B5470917		0x3F84D5B5B5470917
    ADD			0xC0AC29B7C97C50DD * rand3 + 0x3F84D5B5B5470917
    SWAP2			0xC0AC29B7C97C50DD * rand3 + 0x3F84D5B5B5470917
    POP			
    PUSH 1		i < 1000000
    ADD			++i
    PUSH [tag6]		for (int i = 0; i < 1000000; ++i) {...
    JUMP			for (int i = 0; i < 1000000; ++i) {...
  tag3: 
    JUMPDEST		function test() returns (uint) {...
    PUSH 60		contract rng {...
    SWAP1			function test() returns (uint) {...
    DUP2			function test() returns (uint) {...
    MSTORE			function test() returns (uint) {...
    PUSH 20		function test() returns (uint) {...
    SWAP1			function test() returns (uint) {...
    RETURN			function test() returns (uint) {...
  tag7: 
    JUMPDEST		for (int i = 0; i < 1000000; ++i) {...
    POP			
    SWAP2			rand1 ^ rand2
    SWAP1			rand1 ^ rand2
    SWAP3			rand1 ^ rand2
    XOR			rand1 ^ rand2
    SWAP1			rand1 ^ rand2 ^ rand3
    SWAP2			rand1 ^ rand2 ^ rand3
    XOR			rand1 ^ rand2 ^ rand3
    XOR			rand1 ^ rand2 ^ rand3 ^ rand4
    SWAP2			rand1 ^ rand2 ^ rand3 ^ rand4
    SWAP1			function test() returns (uint) {...
    POP			
    JUMP	[out]		function test() returns (uint) {...
